#include<signal.h>
#include<iostream>

int main()
{
    //创建一个信号集
    sigset_t set;
    //初始化信号集
    sigemptyset(&set);
    //全包含信号集
    sigfillset(&set);
    //添加信号到信号集
    sigaddset(&set,14);
    sigaddset(&set,2);
    //检查
    int d = sigismember(&set,14);
    if(d==0)
    {
        std::cout<<"该信号不在信号集中"<<std::endl;
    }
    //屏蔽2,14号信号
    sigprocmask(SIG_BLOCK,&set,NULL);
    int count=0;
    while(1)
    {
        //发送信号
        kill(getpid(),2);
        std::cout<<"已经发送2号信号 "<<"进程"<<getpid()<<"正在执行"<<std::endl;
        if(count==5)
        {
            break;
        }
        sleep(1);
        count++;
    }
    //解决2,14号信号的屏蔽
    sigprocmask(SIG_UNBLOCK,&set,NULL);
    kill(getpid(),2);

    return 0;
}